#!/usr/bin/env node

const GlobalManager = require('./src/globalManager');

console.log('启动 VSCode Web Login Plugin 全局管理服务器...');
console.log('========================================');

const manager = new GlobalManager();

manager.start().then((port) => {
    console.log('');
    console.log('✅ 全局管理服务器启动成功！');
    console.log(`🚀 服务器地址: http://localhost:${port}`);
    console.log(`📊 管理界面: http://localhost:${port}/api/global/projects`);
    console.log(`💚 健康检查: http://localhost:${port}/api/global/health`);
    console.log('');
    console.log('💡 使用说明:');
    console.log('   - 所有VSCode窗口的扩展会自动连接到此服务器');
    console.log('   - 通过统一端口可以访问所有项目的API');
    console.log('   - 服务器会自动管理项目注册和心跳检测');
    console.log('');
    console.log('🔴 按 Ctrl+C 停止服务器');
    console.log('========================================');
}).catch((error) => {
    console.error('❌ 启动全局管理服务器失败:', error.message);
    process.exit(1);
});

// 优雅退出处理
process.on('SIGINT', () => {
    console.log('\n🔄 正在停止全局管理服务器...');
    manager.stop();
    console.log('✅ 全局管理服务器已停止');
    process.exit(0);
});

process.on('SIGTERM', () => {
    console.log('\n🔄 收到终止信号，正在停止服务器...');
    manager.stop();
    process.exit(0);
});

// 处理未捕获的异常
process.on('uncaughtException', (error) => {
    console.error('❌ 未捕获的异常:', error);
    manager.stop();
    process.exit(1);
});

process.on('unhandledRejection', (reason, promise) => {
    console.error('❌ 未处理的Promise拒绝:', reason);
    manager.stop();
    process.exit(1);
}); 